namespace DataModels.Migrations
{
    using System;
    using System.Collections.Generic;
    using System.Data.Entity;
    using System.Data.Entity.Migrations;
    using System.Linq;
    //using DataModels.Common;
    using DataModels.Models;
    using DataModels.Models.IQWebsite;

    public sealed class Configuration : DbMigrationsConfiguration<DataModels.Models.Context.IQSMS_TestDBContext>
    {
        private DataModels.Models.Context.IQSMS_TestDBContext context = null;
        public Configuration()
        {
            AutomaticMigrationsEnabled = false;
        }

        protected override void Seed(DataModels.Models.Context.IQSMS_TestDBContext context)
        {
            this.context = context;
            SeedAccessLevels();
            SeedDataInputMethods();
            SeedTimeframes();
            SeedKnownErrors();
            SeedANCMTUHAReportSectionDetails();
            SeedLDMTUHAReportSectionDetails();
            
            SeedExcelTemplateReports();
            SeedExcelTemplateReportsAPR2014();
            
            SeedTestingAndCounseling();
            SeedActivities();
        }

        #region Seeding Methods
        private void SeedDataInputMethods()
        {
            //this.context.DataInputMethods.AddOrUpdate(i => i.)

            this.context.DataInputMethods.AddOrUpdate(i => i.Name,
                new DataInputMethod
                {
                    Name = DataInputMethod.SMS,
                    Description = DataInputMethod.SMS_DESCRIPTION
                },

                new DataInputMethod
                {
                    Name = DataInputMethod.DESKTOP_DATA_CAPTURE,
                    Description = DataInputMethod.DESKTOP_DATA_CAPTURE_DESCRIPTION
                },

                new DataInputMethod
                {
                    Name = DataInputMethod.MOBILE_DATA_CAPTURE,
                    Description = DataInputMethod.MOBILE_DATA_CAPTURE_DESCRIPTION
                },

                new DataInputMethod
                {
                    Name = DataInputMethod.WEB_DATA_CAPTURE,
                    Description = DataInputMethod.WEB_DATA_CAPTURE_DESCRIPTION
                },

                new DataInputMethod
                {
                    Name = DataInputMethod.DESKTOP_BULK_DATA_IMPORT,
                    Description = DataInputMethod.DESKTOP_BULK_DATA_IMPORT_DESCRIPTION
                },

                new DataInputMethod
                {
                    Name = DataInputMethod.MOBILE_BULK_DATA_IMPORT,
                    Description = DataInputMethod.MOBILE_BULK_DATA_IMPORT_DESCRIPTION
                },

                new DataInputMethod
                {
                    Name = DataInputMethod.WEB_BULK_DATA_IMPORT,
                    Description = DataInputMethod.WEB_BULK_DATA_IMPORT_DESCRIPTION
                },

                new DataInputMethod
                {
                    Name = DataInputMethod.DHIS2_DATA_IMPORT,
                    Description = DataInputMethod.DHIS2_DATA_IMPORT_DESCRIPTION
                },

                new DataInputMethod
                {
                    Name = DataInputMethod.OTHER_DATA_INPUT_METHODS,
                    Description = DataInputMethod.OTHER_DATA_INPUT_METHODS_DESCRIPTION
                },

                new DataInputMethod
                {
                    Name = DataInputMethod.DESKTOP_DATA_MERGING,
                    Description = DataInputMethod.DESKTOP_DATA_MERGING_DESCRIPTION
                },

                new DataInputMethod
                {
                    Name = DataInputMethod.MOBILE_DATA_MERGING,
                    Description = DataInputMethod.MOBILE_DATA_MERGING_DESCRIPTION
                },

                new DataInputMethod
                {
                    Name = DataInputMethod.WEB_DATA_MERGING,
                    Description = DataInputMethod.WEB_DATA_MERGING_DESCRIPTION
                }

            );
        }

        private void SeedTimeframes()
        {
            this.context.Timeframes.AddOrUpdate(t => t.Name,
                new Timeframe
                {
                    Name = "2013 Q4",
                    Description = "Fourth Quarter October - December 2013",
                    StartTime = DateTime.Parse("2013-10-01"),
                    EndTime = DateTime.Parse("2013-12-31")
                },
                new Timeframe
                {
                    Name = "2014 Q1",
                    Description = "First Quarter January - March 2014",
                    StartTime = DateTime.Parse("2014-01-01"),
                    EndTime = DateTime.Parse("2014-03-31")
                },
                new Timeframe
                {
                    Name = "2014 Q2",
                    Description = "Second Quarter April - June 2014",
                    StartTime = DateTime.Parse("2014-04-01"),
                    EndTime = DateTime.Parse("2014-06-30")
                },
                new Timeframe
                {
                    Name = "2014 Q3",
                    Description = "Third Quarter July - September 2014",
                    StartTime = DateTime.Parse("2014-07-01"),
                    EndTime = DateTime.Parse("2014-09-30")
                }
            );
        }

        private void SeedKnownErrors()
        {
            string TARGET_LANGUAGE = "English";
            var results = from t in this.context.Translations
                          where t.Language.Name == TARGET_LANGUAGE
                          select new
                          {
                              ErrorCode = t.LabelNo,
                              Name = t.LText
                          };

            var entities = results
                .ToList()
                .Select(x => new KnownReportingError
                {
                    ErrorCode = x.ErrorCode,
                    Name = x.Name
                })
                .ToArray();
            this.context.KnownReportingErrors.AddOrUpdate(r => r.ErrorCode, entities);
        }

        private void SeedANCMTUHAReportSectionDetails()
        {
            this.context.MTUHA_Reports.AddOrUpdate(r => r.Name,
                new MTUHA_Reports
                {
                    Id = 1,
                    Name = MTUHA_Reports.ANC_MTUHA_REPORT_VERSION_10_NAME,
                    Description = "MTUHA - Taarifa ya Mwezi Toka Kliniki (ANC)",
                    ReleaseDate = DateTime.Parse("2013-03-20"),

                    MTUHA_ReportSections = new List<MTUHA_ReportSections>
                    {
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 1,
                            Name = "Idadi ya Wajawazito Waliotegemewa",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "1",
                                    Name = "Idadi ya wajawazito Waliotegemewa"
                                }
                            }
                        },
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 2,
                            Name = "Hudhurio la kwanza",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "2a",
                                    Name = "Umri wa mimba chini ya wiki 12 (<12 weeks)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "2b",
                                    Name = "Umri wa mimba wiki 12 au zaidi (12+ weeks)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "2c",
                                    Name = "Jumla ya hudhurio la Kwanza (2a+2b)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "2d",
                                    Name = "Wateja wa marudio"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "2e",
                                    Name = "Hudhurio la nne wajazito wote"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "2f",
                                    Name = "Jumla ya Mahudhurio yote (2c+2d)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "2g",
                                    Name = "Idadi ya wajawazito waliopima damu hudhurio la kwanza"
                                }
                            }
                        },
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 3,
                            Name = "Wajawazito waliopata chanjo ya TT2+",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "3",
                                    Name = "Wajawazito waliopata Chanjo ya TT2+"
                                }
                            }
                        },
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 4,
                            Name = "Vidokezo vya Hatari",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4a",
                                    Name = "Mimba zaidi ya 4"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4b",
                                    Name = "Umri chini ya miaka 20"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4c",
                                    Name = "Umri zaidi ya miaka 35"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4d",
                                    Name = "Upungufu mkubwa wa damu <8.5g/dl - Anaemia hudhurio la kwanza"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4e",
                                    Name = "Shinikizo la damu (BP =>140/90mm/hg)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4f",
                                    Name = "Waliopima Kaswendwe"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4g",
                                    Name = "Waliogundulika na maambukizi ya Kaswende"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4h",
                                    Name = "Waliopata matibabu ya Kaswende"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4i",
                                    Name = "Wenza/Waume waliopima Kaswendwe"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4j",
                                    Name = "Wenza/Waume Waliogundulika na maambukizi ya Kaswende"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4k",
                                    Name = "Wenza/waume waliopata matibabu ya Kaswende"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4l",
                                    Name = "Shinikizo la damu (BP =>140/90mm/hg)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4m",
                                    Name = "Waliopima Kaswendwe"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4n",
                                    Name = "Waliogundulika na maambukizi ya Kaswende"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4o",
                                    Name = "Waliopata matibabu ya Kaswende"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4p",
                                    Name = "Wenza/Waume waliopima Kaswendwe"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4q",
                                    Name = "Wenza/Waume Waliogundulika na maambukizi ya Kaswende"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4r",
                                    Name = "Wenza/waume waliopata matibabu ya Kaswende"
                                }
                            }
                        },
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 5,
                            Name = "PMTCT",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "5a",
                                    Name = "Tayari wana maambukizi ya VVU"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "5b",
                                    Name = "Waliopata ushauri nasaha wa kupima VVU"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "5c",
                                    Name = "Waliopata ushauri nasaha wa kupima VVU wenye umri chini ya miaka 25"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "5d",
                                    Name = "Waliopima VVU"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "5e",
                                    Name = "Waliopima VVU 'Positive'"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "5f",
                                    Name = "Waliopima VVU 'positive' walio na umri chini ya miaka 25"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "5g",
                                    Name = "Waliopata Ushauri nasaha baada ya kupima"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "5h",
                                    Name = "Wenza waliopima kliniki ya wajawazito"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "5i",
                                    Name = "Wenza waliokutwa na VVU"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "5j",
                                    Name = "Wajawazito waliopewa dawa mchanganyiko za PMTCT"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "5k",
                                    Name = "Wajawazito wanaotumia dawa za ART"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "5l",
                                    Name = "Wajawazito waliopewa CTX"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "5m",
                                    Name = "Waliopata ushauri juu ya ulishaji wa mtoto"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "5n",
                                    Name = "Wajawazito waliopewa dawa mchanganyiko za PMTCT"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "5o",
                                    Name = "Wajawazito wanaotumia dawa za ART"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "5p",
                                    Name = "Wajawazito waliopewa CTX"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "5q",
                                    Name = "Waliopata ushauri juu ya ulishaji wa mtoto"
                                }
                            }
                        },
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 6,
                            Name = "Malaria",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "6a",
                                    Name = "Waliopewa vocha ya hati punguzo"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "6b",
                                    Name = "Waliopima Malaria"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "6c",
                                    Name = "Waliopima Malaria positive"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "6d",
                                    Name = "Waliopewa IPT1"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "6e",
                                    Name = "Waliopewa IPT2"
                                }
                            }
                        },
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 7,
                            Name = "Waliopewa Iron/Folic vidonge vya kutosha",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "7",
                                    Name = "Waliopewa Iron/Folic vidonge vya kutosha"
                                }
                            }
                        },
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 8,
                            Name = "Waliopewa Dawa za minyoo (Mebendazole / Albendazole)",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "8",
                                    Name = "Waliopewa Dawa za minyoo (Mebendazole / Albendazole)"
                                }
                            }
                        },
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 9,
                            Name = "Waliopewa Rufaa wakati wa ujauzito",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "9",
                                    Name = "Waliopewa Rufaa wakati wa ujauzito"
                                }
                            }
                        },
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 10,
                            Name = "Waliopewa Rufaa kwenda CTC",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "10",
                                    Name = "Waliopewa Rufaa kwenda CTC"
                                }
                            }
                        }
                    }
                }
            );
        }

        private void SeedLDMTUHAReportSectionDetails()
        {
            this.context.MTUHA_Reports.AddOrUpdate(r => r.Name,
                new MTUHA_Reports
                {
                    Id = 2,
                    Name = MTUHA_Reports.LD_MTUHA_REPORT_VERSION_10_NAME,
                    Description = "MTUHA - Taarifa ya Mwezi Toka Wodi ya Wazazi",
                    ReleaseDate = DateTime.Parse("2013-03-20"),

                    MTUHA_ReportSections = new List<MTUHA_ReportSections>
                    {
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 1,
                            Name = "Waliotarajiwa kujifungua",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "1",
                                    Name = "Waliotarajiwa kujifungua"
                                }
                            }
                        },
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 2,
                            Name = "Taarifa ya Waliojifungua",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "2a",
                                    Name = "Waliojifungulia katika kituo cha kutolea huduma za afya"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "2b",
                                    Name = "Waliojifungua kabla ya kufika kituoni (BBA)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "2c",
                                    Name = "Waliozalishwa na wakunga wa jadi (TBA)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "2d",
                                    Name = "Waliojifungua nyumbani (H)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "2e",
                                    Name = "Jumla waliojifungua (2a+2b+2c+2d)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "2f",
                                    Name = "Waliozalishwa na watoa huduma wenye ujuzi"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "2g",
                                    Name = "Asilimia ya waliojifungulia katika vituo vya kutolea huduma za afya (2a/1) x 100"
                                }
                            }
                        },
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 3,
                            Name = "Taarifa ya njia za kujifungua kutoka vituo vya kutolea huduma za afya",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "3a",
                                    Name = "Waliojifungua Kawaida (KW)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "3b",
                                    Name = "Waliojifungua kwa Vacuum (VM)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "3c",
                                    Name = "Breech delivery (BR)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "3d",
                                    Name = "Waliojifungua kwa Caesarian Section (CS)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "3e",
                                    Name = "Waliojifungua kwa njia nyinginezo"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "3f",
                                    Name = "Jumla (3a+3b+3c+3d+3e)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "3g",
                                    Name = "Idadi ya wajawazito walio fanyiwa AMTSL"
                                }
                            }
                        },
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 4,
                            Name = "Matatizo kabla ya kujifungua",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4a",
                                    Name = "APH"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4b",
                                    Name = "Pre-mature Rupture of Membrane (PROM)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4c",
                                    Name = "High BP"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4d",
                                    Name = "Eclampsia"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4e",
                                    Name = "Anaemia"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4f",
                                    Name = "Malaria"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4g",
                                    Name = "HIV+ stage III au IV"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4h",
                                    Name = "Mengineyo"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4i",
                                    Name = "Wenza/Waume waliopima Kaswendwe"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4j",
                                    Name = "Mengineyo"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "4k",
                                    Name = "Wenza/Waume waliopima Kaswendwe"
                                }
                            }
                        },
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 5,
                            Name = "Waliokeketwa (FGM)",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "5",
                                    Name = "Waliokeketwa (FGM)"
                                }
                            }
                        },
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 6,
                            Name = "Matatizo wakati na baada ya kujifungua",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "6a",
                                    Name = "PPH"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "6b",
                                    Name = "Eclampsia"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "6c",
                                    Name = "Obstructed Labour"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "6d",
                                    Name = "Retained Placenta"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "6e",
                                    Name = "Tear (Third degree tear)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "6f",
                                    Name = "Ruptured Uterus"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "6g",
                                    Name = "Uambukizo/ Sepsis"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "6h",
                                    Name = "Mengineyo"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "6i",
                                    Name = "Jumla ya matatizo baada ya kujifungua (6a+6b+6c+6d+6e+6f+6g+6h)"
                                }
                            }
                        },
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 7,
                            Name = "EmOC",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "7a",
                                    Name = "Amepewa (IV) Antibiotiki"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "7b",
                                    Name = "Amepewa (IV) Uterotonic"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "7c",
                                    Name = "Amepewa (IV) Anticonvulsants"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "7d",
                                    Name = "Ameondolewa kondo la nyuma kwa mkono"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "7e",
                                    Name = "Amefanyiwa MVA"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "7f",
                                    Name = "Ameongezewa Damu"
                                }
                            }
                        },
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 8,
                            Name = "PMTCT",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "8a",
                                    Name = "Jumla waliopimwa VVU ANC  "
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "8b",
                                    Name = "Waliogundulika Positive kutoka ANC"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "8c",
                                    Name = "Walioanzishiwa dawa za ARV wakati wa ujauzito (ANC)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "8d",
                                    Name = "Walioanza matibabu ya ART wakati wa ujauzito (ANC)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "8e",
                                    Name = "Jumla waliopimwa VVU wakati na baada ya kujifungua"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "8f",
                                    Name = "Waliogundulika  Positive wakati na baada ya kujifungua"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "8g",
                                    Name = "Walioanzishiwa dawa za ARV wakati wa uchungu na kujifungua"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "8h",
                                    Name = "Walioanza matibabu ya ART wakati wa uchungu na kujifungua"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "8i",
                                    Name = "Jumla Walio na VVU (8b+8f)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "8j",
                                    Name = "Waliochagua kunyonyesha maziwa ya mama pekee (EBF)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "8k",
                                    Name = "Waliochagua ulishaji wa maziwa mbadala (RF)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "8l",
                                    Name = "Waliopewa ARV Prophylaxis (tail) wakati wa kuruhusiwa"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "8m",
                                    Name = "Waliopata rufaa kwenda kliniki ya huduma na matibabu ya wenye VVU (CTC)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "8n",
                                    Name = "Jumla ya akina mama walio na VVU wenye umri chini ya miaka 20"
                                }
                            }
                        },                        
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 9,
                            Name = "Watoto Waliozaliwa mmoja ",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "9a",
                                    Name = "Jumla ya watoto waliozaliwa hai"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "9b",
                                    Name = "Waliozaliwa hai Uzito<2.5kg"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "9c",
                                    Name = "Waliozaliwa hai Uzito =>2.5kg"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "9d",
                                    Name = "Waliozaliwa wafu Macerated (MSB)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "9e",
                                    Name = "Waliozaliwa wafu Fresh (FSB)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "9f",
                                    Name = "Waliozaliwa hai kisha wakafa ndani ya siku 7"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "9g",
                                    Name = "Waliozaliwa hai kisha wakafa  kati ya siku 8 hadi 28"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "9h",
                                    Name = "Idadi ya vifo vya watoto chini ya siku 28 (10d +10e+10f+10g)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "9i",
                                    Name = "Waliozaliwa na mama wenye VVU"
                                }
                            }
                        },                                                
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 10,
                            Name = "Watoto Waliozaliwa mapacha",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "10a",
                                    Name = "Jumla ya watoto waliozaliwa hai"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "10b",
                                    Name = "Waliozaliwa hai Uzito<2.5kg"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "10c",
                                    Name = "Waliozaliwa hai Uzito =>2.5kg"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "10d",
                                    Name = "Waliozaliwa wafu Macerated (MSB)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "10e",
                                    Name = "Waliozaliwa wafu Fresh (FSB)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "10f",
                                    Name = "Waliozaliwa hai kisha wakafa ndani ya siku 7"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "10g",
                                    Name = "Waliozaliwa hai kisha wakafa  kati ya siku 8 hadi 28"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "10h",
                                    Name = "Idadi ya vifo vya watoto chini ya siku 28 (10d +10e+10f+10g)"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "10i",
                                    Name = "Waliozaliwa na mama wenye VVU"
                                }
                            }
                        },
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 11,
                            Name = "Watoto waliosaidiwa kupumua",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "11a",
                                    Name = "Idadi ya Watoto Waliosaidiwa Kupumua- stimulation"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "11b",
                                    Name = "Idadi ya Watoto Waliosaidiwa Kupumua-suction"
                                },
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "11c",
                                    Name = "dadi ya Watoto Waliosaidiwa Kupumua- bag and Mask"
                                }
                            }
                        },
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 12,
                            Name = "Idadi ya Watoto walionyonyeshwa saa moja baada ya kuzaliwa",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "12",
                                    Name = "Idadi ya Watoto walionyonyeshwa saa moja baada ya kuzaliwa"
                                }
                            }
                        },
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 13,
                            Name = "Waliofanyiwa tathmini masaa 24 baada ya kuzaliwa",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "13",
                                    Name = "Waliofanyiwa tathmini masaa 24 baada ya kuzaliwa"
                                }
                            }
                        },
                        new MTUHA_ReportSections
                        {
                            SectionNumber = 14,
                            Name = "Mama na Mtoto waliopewa rufaa",
                            MTUHA_ReportSectionDetails = new List<MTUHA_ReportSectionDetails>
                            {
                                new MTUHA_ReportSectionDetails
                                {
                                    ShortCode = "14",
                                    Name = "Mama na Mtoto waliopewa rufaa"
                                }
                            }
                        }
                    }
                }
            );
        }

        private void SeedExcelTemplateReports()
        {
            const string TC01 = "TC01_MaleLT15,+,TC01_MaleGT15,+,TC01_FemaleLT15,+,TC01_FemaleGT15";
            const string TC02 = "TC02_MaleLT15,+,TC02_MaleGT15,+,TC02_FemaleLT15,+,TC02_FemaleGT15";
            const string TC03 = "TC03_MaleLT15,+,TC03_MaleGT15,+,TC03_FemaleLT15,+,TC03_FemaleGT15";
            const string TC04 = "TC04_MaleLT15,+,TC04_MaleGT15,+,TC04_FemaleLT15,+,TC04_FemaleGT15";
            const string TC05 = "TC05_MaleLT15,+,TC05_MaleGT15,+,TC05_FemaleLT15,+,TC05_FemaleGT15";
            const string TC06 = "TC06_MaleLT15,+,TC06_MaleGT15,+,TC06_FemaleLT15,+,TC06_FemaleGT15";
            const string TC07 = "TC07_MaleLT15,+,TC07_MaleGT15,+,TC07_FemaleLT15,+,TC07_FemaleGT15";
            const string TC08 = "TC08_MaleLT15,+,TC08_MaleGT15,+,TC08_FemaleLT15,+,TC08_FemaleGT15";
            const string TC09 = "TC09_MaleLT15,+,TC09_MaleGT15,+,TC09_FemaleLT15,+,TC09_FemaleGT15";
            const string REDUCE_TC09 = "TC09_MaleLT15,-,TC09_MaleGT15,-,TC09_FemaleLT15,-,TC09_FemaleGT15";
            const string REDUCE_TC03 = "TC03_MaleLT15,-,TC03_MaleGT15,-,TC03_FemaleLT15,-,TC03_FemaleGT15";
            const string REDUCE_TC06 = "TC06_MaleLT15,-,TC06_MaleGT15,-,TC06_FemaleLT15,-,TC06_FemaleGT15";

            const string PLUS = ",+,";
            const string MINUS = ",-,";

            const string BY_TEST_RESULTS_POSITIVE = "ANC05,+,ANC07,+,ANC11,+,MAT07" + PLUS + TC03 + PLUS + TC06;
            //const string BY_TEST_RESULTS_NEGATIVE = "ANC08,+,ANC10,+,MAT05,+,MAT06,-,ANC05,-,ANC07,-,ANC11,-,MAT07" + PLUS + TC02 + MINUS + REDUCE_TC03 + MINUS + REDUCE_TC06;
            const string BY_TEST_RESULTS_NEGATIVE = "ANC04,+,ANC12,+,MAT05,+,MAT06,-,ANC05,-,ANC07,-,ANC11,-,MAT07" + PLUS + TC02 + MINUS + REDUCE_TC03 + MINUS + REDUCE_TC06;

            //const string BY_COUPLE_INDIVIDUAL_POSITIVE = "ANC05,+,ANC11" + PLUS + TC03 + PLUS + TC09;
            const string BY_COUPLE_INDIVIDUAL_POSITIVE = "MIN(ANC12+ANC12|ANC05+ANC11)" + PLUS + TC03 + PLUS + TC09;
            //const string BY_COUPLE_INDIVIDUAL_NEGATIVE = "ANC08,+,ANC10,-,ANC05,-,ANC11" + PLUS + TC02 + MINUS + REDUCE_TC03 + MINUS + REDUCE_TC09;
            const string BY_COUPLE_INDIVIDUAL_NEGATIVE = "ANC012,+,ANC12" + MINUS + BY_COUPLE_INDIVIDUAL_POSITIVE + PLUS + TC02 + MINUS + REDUCE_TC03 + MINUS + REDUCE_TC09;

            const string BY_COUPLE_COUPLE_POSITIVE = "MIN(ANC11|ANC05)" + PLUS + TC09;
            const string BY_COUPLE_COUPLE_NEGATIVE = "ANC10,-,ANC11" + PLUS + TC07 + MINUS + REDUCE_TC09;

            const string AGE_SEX_MALE_BELOW_15 = "TC02_MaleLT15";
            const string AGE_SEX_MALE_ABOVE_15 = "ANC12" + PLUS + "TC02_MaleGT15";
            const string AGE_SEX_FEMALE_BELOW_15 = "TC02_FemaleLT15";
            const string AGE_SEX_FEMALE_ABOVE_15 = "ANC04,+,MAT05,+,MAT06" + PLUS + "TC02_FemaleGT15";

            const string KNOWN_POSITIVE_WOMEN_AT_ENTRY = "ANC02";
            const string PREGNANT_WOMEN_TESTED_POSITIVE = "ANC05,+,ANC07,+,MAT07";
            const string REDUCE_PREGNANT_WOMEN_TESTED_POSITIVE = "ANC05,-,ANC07,-,MAT07";
            const string PREGNANT_WOMEN_TESTED_NEGATIVE = "ANC04,+,MAT05,+,MAT06" + MINUS + KNOWN_POSITIVE_WOMEN_AT_ENTRY + MINUS + REDUCE_PREGNANT_WOMEN_TESTED_POSITIVE;
            const string NEW_ANC_AND_LD_CLIENTS = "MAX(ANC01|ANC04),+,MAT04";
            
            const string MATERNAL_AZT = "PCR09,+,MAT11";
            const string OPTION_B_NEW_ON_ART = "PCR10";
            const string OPTION_B_CURRENT_ON_ART = "PCR11";
            const string POSITIVE_PREGNANT_WOMEN_IDENTIFIED = "MAX(ANC02+ANC05+ANC07+MAT07|PCR09+MAT11+PCR10+PCR11)";

            //const string BY_TEST_RESULTS_POSITIVE = TC03 + PLUS + TC06;
            //const string BY_TEST_RESULTS_NEGATIVE = TC02 + PLUS + TC05 + MINUS + TC03 + MINUS + TC06;

            //const string BY_COUPLE_INDIVIDUAL_POSITIVE = TC03 + ",+," + TC09;
            //const string BY_COUPLE_INDIVIDUAL_NEGATIVE = TC02 + PLUS + TC07 + MINUS + TC03 + MINUS + TC09;

            //const string BY_COUPLE_COUPLE_POSITIVE = TC09;
            //const string BY_COUPLE_COUPLE_NEGATIVE = TC07 + MINUS + TC09;

            //const string AGE_SEX_MALE_BELOW_15 = "TC02_MaleLT15";
            //const string AGE_SEX_MALE_ABOVE_15 = "TC02_MaleGT15";
            //const string AGE_SEX_FEMALE_BELOW_15 = "TC02_FemaleLT15";
            //const string AGE_SEX_FEMALE_ABOVE_15 = "TC02_FemaleGT15";

            var masterExcelTemplateCells = new List<ExcelTemplateCell>
            {
                #region HIV Testing and Counseling
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_MALE_BELOW_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) Age/Sex: <15 Male",
                    CellAddress = "AW22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD },
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_MALE_ABOVE_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) Age/Sex: 15+ Male",
                    CellAddress = "AX22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD },
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_FEMALE_BELOW_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) Age/Sex: <15 Female",
                    CellAddress = "AY22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD },
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_FEMALE_ABOVE_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) Age/Sex: 15+ Female",
                    CellAddress = "AZ22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_MALE_BELOW_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) Age/Sex: <15 Male",
                    CellAddress = "BA22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY },
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_MALE_ABOVE_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) Age/Sex: 15+ Male",
                    CellAddress = "BB22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_FEMALE_BELOW_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) Age/Sex: <15 Female",
                    CellAddress = "BC22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_FEMALE_ABOVE_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) Age/Sex: 15+ Female",
                    CellAddress = "BD22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_MALE_BELOW_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) Age/Sex: <15 Male",
                    CellAddress = "BE22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_MALE_ABOVE_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) Age/Sex: 15+ Male",
                    CellAddress = "BF22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_FEMALE_BELOW_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) Age/Sex: <15 Female",
                    CellAddress = "BG22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_FEMALE_ABOVE_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) Age/Sex: 15+ Female",
                    CellAddress = "BH22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_TEST_RESULTS_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) By Test Result: Positive",
                    CellAddress = "BI22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_TEST_RESULTS_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) By Test Result: Negative",
                    CellAddress = "BJ22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_TEST_RESULTS_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) By Test Result: Positive",
                    CellAddress = "BK22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_TEST_RESULTS_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) By Test Result: Negative",
                    CellAddress = "BL22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_TEST_RESULTS_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) By Test Result: Positive",
                    CellAddress = "BM22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_TEST_RESULTS_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) By Test Result: Negative",
                    CellAddress = "BN22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_INDIVIDUAL_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) By Couple: Number of individuals testing Positive",
                    CellAddress = "BO22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_INDIVIDUAL_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) By Couple: Number of individuals testing Negative",
                    CellAddress = "BP22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_COUPLE_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) By Couple: Number of couples tested Positive",
                    CellAddress = "BQ22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_COUPLE_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) By Couple: Number of couples tested Negative",
                    CellAddress = "BR22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_INDIVIDUAL_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) By Couple: Number of individuals testing Positive",
                    CellAddress = "BS22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_INDIVIDUAL_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) By Couple: Number of individuals testing Negative",
                    CellAddress = "BT22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_COUPLE_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) By Couple: Number of couples tested Positive",
                    CellAddress = "BU22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_COUPLE_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) By Couple: Number of couples tested Negative",
                    CellAddress = "BV22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_INDIVIDUAL_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) By Couple: Number of individuals testing Positive",
                    CellAddress = "BW22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_INDIVIDUAL_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) By Couple: Number of individuals testing Negative",
                    CellAddress = "BX22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_COUPLE_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) By Couple: Number of couples tested Positive",
                    CellAddress = "BY22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_COUPLE_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) By Couple: Number of couples tested Negative",
                    CellAddress = "BZ22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                #endregion

                #region Prevention of Mother to Child Transmission (PMTCT)
                new ExcelTemplateCell
                {
                    IndicatorDataSource = PREGNANT_WOMEN_TESTED_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) Number of pregnant women tested HIV+",
                    CellAddress = "CR22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = PREGNANT_WOMEN_TESTED_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) Number of pregnant women tested HIV-",
                    CellAddress = "CS22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = KNOWN_POSITIVE_WOMEN_AT_ENTRY,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) Number of pregnant women known HIV+ at entry",
                    CellAddress = "CT22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = PREGNANT_WOMEN_TESTED_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) Number of pregnant women tested HIV+",
                    CellAddress = "CU22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = PREGNANT_WOMEN_TESTED_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) Number of pregnant women tested HIV-",
                    CellAddress = "CV22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = KNOWN_POSITIVE_WOMEN_AT_ENTRY,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) Number of pregnant women known HIV+ at entry",
                    CellAddress = "CW22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },new ExcelTemplateCell
                {
                    IndicatorDataSource = PREGNANT_WOMEN_TESTED_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) Number of pregnant women tested HIV+",
                    CellAddress = "CX22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = PREGNANT_WOMEN_TESTED_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) Number of pregnant women tested HIV-",
                    CellAddress = "CY22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = KNOWN_POSITIVE_WOMEN_AT_ENTRY,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) Number of pregnant women known HIV+ at entry",
                    CellAddress = "CZ22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = NEW_ANC_AND_LD_CLIENTS,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD)[Denom] Number of new ANC and L&D clients",
                    CellAddress = "DA22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = NEW_ANC_AND_LD_CLIENTS,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA)[Denom] Number of new ANC and L&D clients",
                    CellAddress = "DB22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = NEW_ANC_AND_LD_CLIENTS,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA)[Denom] Number of new ANC and L&D clients",
                    CellAddress = "DC22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = MATERNAL_AZT,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) By Regimen Type: Maternal AZT (prohylaxis component of WHO Option A during pregnancy and delivery)",
                    CellAddress = "DE22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = OPTION_B_NEW_ON_ART,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) [Sub-disagg to Life-long ART (including Option B+)] By Regimen Type: New on ART",
                    CellAddress = "DG22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = OPTION_B_CURRENT_ON_ART,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) [Sub-disagg to Life-long ART (including Option B+)] By Regimen Type: Currently on ART",
                    CellAddress = "DH22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },                                
                new ExcelTemplateCell
                {
                    IndicatorDataSource = MATERNAL_AZT,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) By Regimen Type: Maternal AZT (prohylaxis component of WHO Option A during pregnancy and delivery)",
                    CellAddress = "DJ22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = OPTION_B_NEW_ON_ART,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) [Sub-disagg to Life-long ART (including Option B+)] By Regimen Type: New on ART",
                    CellAddress = "DL22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = OPTION_B_CURRENT_ON_ART,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) [Sub-disagg to Life-long ART (including Option B+)] By Regimen Type: Currently on ART",
                    CellAddress = "DM22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },                               
                new ExcelTemplateCell
                {
                    IndicatorDataSource = MATERNAL_AZT,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) By Regimen Type: Maternal AZT (prohylaxis component of WHO Option A during pregnancy and delivery)",
                    CellAddress = "DO22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = OPTION_B_NEW_ON_ART,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) [Sub-disagg to Life-long ART (including Option B+)] By Regimen Type: New on ART",
                    CellAddress = "DQ22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = OPTION_B_CURRENT_ON_ART,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) [Sub-disagg to Life-long ART (including Option B+)] By Regimen Type: Currently on ART",
                    CellAddress = "DR22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },                                
                new ExcelTemplateCell
                {
                    IndicatorDataSource = POSITIVE_PREGNANT_WOMEN_IDENTIFIED,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD)[Denom]Number of HIV-positive pregnant women identified during the reporting period (including known HIV-positive women at entry into PMTCT)",
                    CellAddress = "DS22",                                    
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },                                
                new ExcelTemplateCell
                {
                    IndicatorDataSource = POSITIVE_PREGNANT_WOMEN_IDENTIFIED,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA)[Denom]Number of HIV-positive pregnant women identified during the reporting period (including known HIV-positive women at entry into PMTCT)",
                    CellAddress = "DT22",                                    
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },                                
                new ExcelTemplateCell
                {
                    IndicatorDataSource = POSITIVE_PREGNANT_WOMEN_IDENTIFIED,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA)[Denom]Number of HIV-positive pregnant women identified during the reporting period (including known HIV-positive women at entry into PMTCT)",
                    CellAddress = "DU22",                                    
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "MC12",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "Number tested: <2 months",
                    CellAddress = "DV22"
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "MC10,-,MC12",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader ="Number tested: 2-12 months",
                    CellAddress = "DW22"
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "MC13",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "Number Tested HIV+: <2 months",
                    CellAddress = "DX22"
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "MC11,-,MC13",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "Number of Tested HIV+: 2-12 months",
                    CellAddress = "DY22"
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = POSITIVE_PREGNANT_WOMEN_IDENTIFIED,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "PMTCT_EID: [Denom] Number of HIV-positive pregnant women identified during the reporting period (including known HIV-positive women at entry into PMTCT)",
                    CellAddress = "DZ22"
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "MC09",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "PMTCT_CTX: [Num] Number of infants born to HIV-infected women who were started o contrimoxazole (CTX) prophylaxis within two months of birth within the reporting period",
                    CellAddress = "EA22"
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = POSITIVE_PREGNANT_WOMEN_IDENTIFIED,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "PMTCT_CTX: [Denom] Number of HIV-positive pregnant women identified during the reporting period (including known HIV-positive at entry)",
                    CellAddress = "EB22"
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "HOSPITAL",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "Hospital",
                    CellAddress = "ED22"
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "DISPENSARY",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "Dispensary",
                    CellAddress = "EE22"
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "HEALTHCENTRE",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "Health Center",
                    CellAddress = "EF22"
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "PMTCTSITE",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "C4.3.N [Denom]: Health facility is a PMTCT site",
                    CellAddress = "EG22"
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "ANCSERVICES",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "P1.3.D: Health facility providing ANC services that provide both HIV testing and ARVs for PMTCT on site [TRUE if providing; FALSE to change prior entry]",
                    CellAddress = "EC22"
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "HOSPITAL",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "By Facility Type: Hospital",
                    CellAddress = "EK22"
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "DISPENSARY",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "By Facility Type: Dispensary",
                    CellAddress = "EL22"
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "HEALTHCENTRE",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "By Facility Type: Health Center",
                    CellAddress = "EM22"
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = OtherSystemsFacilityDetail.RCH_FACILITY,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "TZ_RCH: Total number of RCH facilities in the region",
                    CellAddress = "EN22"
                }//,
                #endregion

                #region Site Support (PEPFAR)
                //new ExcelTemplateCell
                //{
                //    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.DSD_HTC,
                //    ColumnHeaderIndex = 21,
                //    RowHeaderIndex = 1,
                //    ColumnHeader = "(DSD)HTC",
                //    CellAddress = "EP22",
                //    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                //    {
                //        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                //    }
                //},
                //new ExcelTemplateCell
                //{
                //    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.TA_HTC,
                //    ColumnHeaderIndex = 21,
                //    RowHeaderIndex = 1,
                //    ColumnHeader = "(TA)HTC",
                //    CellAddress = "EQ22",
                //    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                //    {
                //        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                //    }
                //},
                //new ExcelTemplateCell
                //{
                //    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.DSD_TREATMENT,
                //    ColumnHeaderIndex = 21,
                //    RowHeaderIndex = 1,
                //    ColumnHeader = "(DSD)Treatment",
                //    CellAddress = "ER22",
                //    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                //    {
                //        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                //    }
                //},
                //new ExcelTemplateCell
                //{
                //    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.TA_TREATMENT,
                //    ColumnHeaderIndex = 21,
                //    RowHeaderIndex = 1,
                //    ColumnHeader = "(TA)Treatment",
                //    CellAddress = "ES22",
                //    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                //    {
                //        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                //    }
                //},
                //new ExcelTemplateCell
                //{
                //    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.DSD_CARE_AND_SUPPORT,
                //    ColumnHeaderIndex = 21,
                //    RowHeaderIndex = 1,
                //    ColumnHeader = "(DSD)Care and Support",
                //    CellAddress = "ET22",
                //    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                //    {
                //        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                //    }
                //},
                //new ExcelTemplateCell
                //{
                //    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.TA_CARE_AND_SUPPORT,
                //    ColumnHeaderIndex = 21,
                //    RowHeaderIndex = 1,
                //    ColumnHeader = "(TA)Care and Support",
                //    CellAddress = "EU22",
                //    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                //    {
                //        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                //    }
                //},
                //new ExcelTemplateCell
                //{
                //    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.DSD_FOOD_AND_NUTRITION,
                //    ColumnHeaderIndex = 21,
                //    RowHeaderIndex = 1,
                //    ColumnHeader = "(DSD)Food and Nutrition",
                //    CellAddress = "EV22",
                //    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                //    {
                //        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                //    }
                //},
                //new ExcelTemplateCell
                //{
                //    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.TA_FOOD_AND_NUTRITION,
                //    ColumnHeaderIndex = 21,
                //    RowHeaderIndex = 1,
                //    ColumnHeader = "(TA)Food and Nutrition",
                //    CellAddress = "EW22",
                //    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                //    {
                //        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                //    }
                //},
                //new ExcelTemplateCell
                //{
                //    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.DSD_PMTCT,
                //    ColumnHeaderIndex = 21,
                //    RowHeaderIndex = 1,
                //    ColumnHeader = "(DSD)PMTCT",
                //    CellAddress = "EX22",
                //    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                //    {
                //        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                //    }
                //},
                //new ExcelTemplateCell
                //{
                //    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.TA_PMTCT,
                //    ColumnHeaderIndex = 21,
                //    RowHeaderIndex = 1,
                //    ColumnHeader = "(TA)PMTCT",
                //    CellAddress = "EY22",
                //    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                //    {
                //        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                //    }
                //},
                //new ExcelTemplateCell
                //{
                //    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.DSD_TB_HIV,
                //    ColumnHeaderIndex = 21,
                //    RowHeaderIndex = 1,
                //    ColumnHeader = "(DSD)TB/HIV",
                //    CellAddress = "EZ22",
                //    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                //    {
                //        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                //    }
                //},
                //new ExcelTemplateCell
                //{
                //    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.TA_TB_HIV,
                //    ColumnHeaderIndex = 21,
                //    RowHeaderIndex = 1,
                //    ColumnHeader = "(TA)TB/HIV",
                //    CellAddress = "FA22",
                //    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                //    {
                //        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                //    }
                //},
                //new ExcelTemplateCell
                //{
                //    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.DSD_VMMC,
                //    ColumnHeaderIndex = 21,
                //    RowHeaderIndex = 1,
                //    ColumnHeader = "(DSD)VMMC",
                //    CellAddress = "FB22",
                //    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                //    {
                //        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                //    }
                //},
                //new ExcelTemplateCell
                //{
                //    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.TA_VMMC,
                //    ColumnHeaderIndex = 21,
                //    RowHeaderIndex = 1,
                //    ColumnHeader = "(TA)VMMC",
                //    CellAddress = "FC22",
                //    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                //    {
                //        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                //    }
                //},
                //new ExcelTemplateCell
                //{
                //    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.DSD_KEY_POP_PREVENTION,
                //    ColumnHeaderIndex = 21,
                //    RowHeaderIndex = 1,
                //    ColumnHeader = "(DSD)Key Pop Prevention",
                //    CellAddress = "FD22",
                //    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                //    {
                //        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                //    }
                //},
                //new ExcelTemplateCell
                //{
                //    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.TA_KEY_POP_PREVENTION,
                //    ColumnHeaderIndex = 21,
                //    RowHeaderIndex = 1,
                //    ColumnHeader = "(TA)Key Pop Prevention",
                //    CellAddress = "FE22",
                //    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                //    {
                //        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                //    }
                //},
                //new ExcelTemplateCell
                //{
                //    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.DSD_PHDP_FAMILY_PLANNING,
                //    ColumnHeaderIndex = 21,
                //    RowHeaderIndex = 1,
                //    ColumnHeader = "(DSD)PHDP / Family Planning & Integration",
                //    CellAddress = "FF22",
                //    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                //    {
                //        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                //    }
                //},
                //new ExcelTemplateCell
                //{
                //    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.TA_PHDP_FAMILY_PLANNING,
                //    ColumnHeaderIndex = 21,
                //    RowHeaderIndex = 1,
                //    ColumnHeader = "(TA)PHDP / Family Planning & Integration",
                //    CellAddress = "FG22",
                //    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                //    {
                //        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                //    }
                //},
                //new ExcelTemplateCell
                //{
                //    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.DSD_LAB,
                //    ColumnHeaderIndex = 21,
                //    RowHeaderIndex = 1,
                //    ColumnHeader = "(DSD)Lab",
                //    CellAddress = "FH22",
                //    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                //    {
                //        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                //    }
                //},
                //new ExcelTemplateCell
                //{
                //    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.TA_LAB,
                //    ColumnHeaderIndex = 21,
                //    RowHeaderIndex = 1,
                //    ColumnHeader = "(TA)Lab",
                //    CellAddress = "FI22",
                //    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                //    {
                //        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                //    }
                //}
                #endregion
            };

            var tangaTemplateCells = new List<ExcelTemplateCell>();
            foreach (var c in masterExcelTemplateCells)
            {
                var cell = (ExcelTemplateCell)c.Clone();
                tangaTemplateCells.Add(cell);
            }

            var maraTemplateCells = new List<ExcelTemplateCell>();
            foreach (var c in masterExcelTemplateCells)
            {
                var cell = (ExcelTemplateCell)c.Clone();
                maraTemplateCells.Add(cell);
            }

            var missingTemplateCells = new List<ExcelTemplateCell>();
            foreach (var c in masterExcelTemplateCells)
            {
                var cell = (ExcelTemplateCell)c.Clone();
                missingTemplateCells.Add(cell);
            }
            missingTemplateCells.AddRange(new List<ExcelTemplateCell>           
            {
                #region Data Row Headers
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "REGIONNAME",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "Region",
                    CellAddress = "C22"
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "DISTRICTNAME",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "District",
                    CellAddress = "D22"
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "FACILITYNAME",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "Facility",
                    CellAddress = "E22"
                }
                #endregion
            });

            this.context.ExcelTemplateReports.AddOrUpdate(r => r.Filename,
                #region Tanga 2014 SAPR
                new ExcelTemplateReport
                {
                    TemplateName = "SAPR / APR",
                    Description = "Semi-annual Progress Report / Annual Progress Report - Tanga [April 2014]",
                    Filename = "TZ_12045_FP_Catholic Relief Services_2014 SAPR_21.xlsx",
                    MainTemplate = true,
                    UsedInAPR = true,
                    UsedInSAPR = true,
                    CalculatingMethod = OtherSystemsFacilityDetail.CALCULATING_METHOD_COP14,

                    ExcelTemplateSheets = new List<ExcelTemplateSheet>
                    {
                        new ExcelTemplateSheet
                        {
                            TemplateSheetName = "Indicator Data Entry",
                            OutputSheetName = null,
                            OutputsheetNameTemplate = null,
                            HasRepetitiveColumns = false,
                            HasRepetitiveRows = false,
                            FirstRepetitiveColumnCellIndex = 3,
                            FirstRepetitiveRowCellIndex = 22,
                            LastRepetitiveColumnCellIndex = null,
                            LastRepetitiveRowCellIndex = null,
                            ExcelTemplateCells = tangaTemplateCells
                        }
                    }
                },
                #endregion
                #region Mara & Manyara 2014 SAPR
                new ExcelTemplateReport
                {
                    TemplateName = "SAPR / APR",
                    Description = "Semi-annual Progress Report / Annual Progress Report - Mara & Manyara [April 2014]",
                    Filename = "TZ_12045_FP_Catholic Relief Services_2014 SAPR_11.xlsx",
                    MainTemplate = true,
                    UsedInAPR = true,
                    UsedInSAPR = true,
                    CalculatingMethod = OtherSystemsFacilityDetail.CALCULATING_METHOD_COP14,

                    ExcelTemplateSheets = new List<ExcelTemplateSheet>
                    {
                        new ExcelTemplateSheet
                        {
                            TemplateSheetName = "Indicator Data Entry",
                            OutputSheetName = null,
                            OutputsheetNameTemplate = null,
                            HasRepetitiveColumns = false,
                            HasRepetitiveRows = false,
                            FirstRepetitiveColumnCellIndex = 3,
                            FirstRepetitiveRowCellIndex = 22,
                            LastRepetitiveColumnCellIndex = null,
                            LastRepetitiveRowCellIndex = null,
                            ExcelTemplateCells = maraTemplateCells
                        }
                    }
                },
                #endregion
                #region Missing 2014 SAPR
                new ExcelTemplateReport
                {
                    TemplateName = "SAPR / APR",
                    Description = "Semi-annual Progress Report / Annual Progress Report - Missing [April 2014]",
                    Filename = "Missing_TZ_12045_FP_Catholic Relief Services_2014 SAPR.xlsx",
                    MainTemplate = false,
                    UsedInAPR = true,
                    UsedInSAPR = true,
                    CalculatingMethod = OtherSystemsFacilityDetail.CALCULATING_METHOD_COP14,

                    ExcelTemplateSheets = new List<ExcelTemplateSheet>
                    {
                        new ExcelTemplateSheet
                        {
                            TemplateSheetName = "Indicator Data Entry",
                            OutputSheetName = null,
                            OutputsheetNameTemplate = null,
                            HasRepetitiveColumns = false,
                            HasRepetitiveRows = false,
                            FirstRepetitiveColumnCellIndex = 3,
                            FirstRepetitiveRowCellIndex = 22,
                            LastRepetitiveColumnCellIndex = null,
                            LastRepetitiveRowCellIndex = null,
                            ExcelTemplateCells = missingTemplateCells
                        }
                    }
                }
                #endregion
            );
        }

        private void SeedExcelTemplateReportsAPR2014()
        {
            #region Constants - Indicators
            const string TC01 = "TC01_MaleLT15,+,TC01_MaleGT15,+,TC01_FemaleLT15,+,TC01_FemaleGT15";
            const string TC02 = "TC02_MaleLT15,+,TC02_MaleGT15,+,TC02_FemaleLT15,+,TC02_FemaleGT15";
            const string TC03 = "TC03_MaleLT15,+,TC03_MaleGT15,+,TC03_FemaleLT15,+,TC03_FemaleGT15";
            const string TC04 = "TC04_MaleLT15,+,TC04_MaleGT15,+,TC04_FemaleLT15,+,TC04_FemaleGT15";
            const string TC05 = "TC05_MaleLT15,+,TC05_MaleGT15,+,TC05_FemaleLT15,+,TC05_FemaleGT15";
            const string TC06 = "TC06_MaleLT15,+,TC06_MaleGT15,+,TC06_FemaleLT15,+,TC06_FemaleGT15";
            const string TC07 = "TC07_MaleLT15,+,TC07_MaleGT15,+,TC07_FemaleLT15,+,TC07_FemaleGT15";
            const string TC08 = "TC08_MaleLT15,+,TC08_MaleGT15,+,TC08_FemaleLT15,+,TC08_FemaleGT15";
            const string TC09 = "TC09_MaleLT15,+,TC09_MaleGT15,+,TC09_FemaleLT15,+,TC09_FemaleGT15";
            const string REDUCE_TC09 = "TC09_MaleLT15,-,TC09_MaleGT15,-,TC09_FemaleLT15,-,TC09_FemaleGT15";
            const string REDUCE_TC03 = "TC03_MaleLT15,-,TC03_MaleGT15,-,TC03_FemaleLT15,-,TC03_FemaleGT15";
            const string REDUCE_TC06 = "TC06_MaleLT15,-,TC06_MaleGT15,-,TC06_FemaleLT15,-,TC06_FemaleGT15";
            const string REDUCE_TC08 = "TC08_MaleLT15,-,TC08_MaleGT15,-,TC08_FemaleLT15,-,TC08_FemaleGT15";

            const string PLUS = ",+,";
            const string MINUS = ",-,";

            const string BY_TEST_RESULTS_POSITIVE = "ANC05,+,ANC07,+,ANC11,+,MAT07" + PLUS + TC03 + PLUS + TC06;
            //const string BY_TEST_RESULTS_NEGATIVE = "ANC08,+,ANC10,+,MAT05,+,MAT06,-,ANC05,-,ANC07,-,ANC11,-,MAT07" + PLUS + TC02 + MINUS + REDUCE_TC03 + MINUS + REDUCE_TC06;
            const string BY_TEST_RESULTS_NEGATIVE = "ANC04,+,ANC12,+,MAT05,+,MAT06,-,ANC05,-,ANC07,-,ANC11,-,MAT07" + PLUS + TC02 + MINUS + REDUCE_TC03 + MINUS + REDUCE_TC06;

            //const string BY_COUPLE_INDIVIDUAL_POSITIVE = "ANC05,+,ANC11" + PLUS + TC03 + PLUS + TC09;
            //const string BY_COUPLE_INDIVIDUAL_POSITIVE = "MIN(ANC12+ANC12|ANC05+ANC11)" + PLUS + TC03 + PLUS + TC09;
            const string BY_COUPLE_INDIVIDUAL_POSITIVE = TC09 + PLUS + TC09 + PLUS + TC08;
            //const string BY_COUPLE_INDIVIDUAL_NEGATIVE = "ANC08,+,ANC10,-,ANC05,-,ANC11" + PLUS + TC02 + MINUS + REDUCE_TC03 + MINUS + REDUCE_TC09;
            //const string BY_COUPLE_INDIVIDUAL_NEGATIVE = "ANC012,+,ANC12" + MINUS + BY_COUPLE_INDIVIDUAL_POSITIVE + PLUS + TC02 + MINUS + REDUCE_TC03 + MINUS + REDUCE_TC09;
            const string BY_COUPLE_INDIVIDUAL_NEGATIVE = TC07 + PLUS + TC07 + MINUS + REDUCE_TC09 + MINUS + REDUCE_TC09 + MINUS + REDUCE_TC08;

            //const string BY_COUPLE_COUPLE_POSITIVE = "MIN(ANC11|ANC05)" + PLUS + TC09;
            //const string BY_COUPLE_COUPLE_NEGATIVE = "ANC10,-,ANC11" + PLUS + TC07 + MINUS + REDUCE_TC09;
            const string BY_COUPLE_COUPLE_POSITIVE = TC09;
            const string BY_COUPLE_COUPLE_NEGATIVE = TC07 + MINUS + REDUCE_TC09;

            const string AGE_SEX_MALE_BELOW_15 = "TC02_MaleLT15";
            const string AGE_SEX_MALE_ABOVE_15 = "ANC12" + PLUS + "TC02_MaleGT15";
            const string AGE_SEX_FEMALE_BELOW_15 = "TC02_FemaleLT15";
            const string AGE_SEX_FEMALE_ABOVE_15 = "ANC04,+,MAT05,+,MAT06" + PLUS + "TC02_FemaleGT15";

            const string KNOWN_POSITIVE_WOMEN_AT_ENTRY = "ANC02";
            const string PREGNANT_WOMEN_TESTED_POSITIVE = "ANC05,+,ANC07,+,MAT07";
            const string REDUCE_PREGNANT_WOMEN_TESTED_POSITIVE = "ANC05,-,ANC07,-,MAT07";
            //const string PREGNANT_WOMEN_TESTED_NEGATIVE = "ANC08,+,MAT05,+,MAT06" + MINUS + KNOWN_POSITIVE_WOMEN_AT_ENTRY + MINUS + REDUCE_PREGNANT_WOMEN_TESTED_POSITIVE;
            const string PREGNANT_WOMEN_TESTED_NEGATIVE = "ANC04,+,MAT05,+,MAT06" + MINUS + REDUCE_PREGNANT_WOMEN_TESTED_POSITIVE;
            const string NEW_ANC_AND_LD_CLIENTS = "MAX(ANC01|ANC04),+,MAT04";

            const string MATERNAL_AZT = "PCR09,+,MAT11";
            const string OPTION_B_NEW_ON_ART = "MAX(PCR10|PCR12)";
            const string OPTION_B_CURRENT_ON_ART = "PCR11";
            //const string POSITIVE_PREGNANT_WOMEN_IDENTIFIED = "MAX(ANC02+ANC05+ANC07+MAT07|PCR09+MAT11+PCR10+PCR11)";
            const string POSITIVE_PREGNANT_WOMEN_IDENTIFIED = "ANC02,+,ANC05,+,ANC07,+,MAT07";

            //const string BY_TEST_RESULTS_POSITIVE = TC03 + PLUS + TC06;
            //const string BY_TEST_RESULTS_NEGATIVE = TC02 + PLUS + TC05 + MINUS + TC03 + MINUS + TC06;

            //const string BY_COUPLE_INDIVIDUAL_POSITIVE = TC03 + ",+," + TC09;
            //const string BY_COUPLE_INDIVIDUAL_NEGATIVE = TC02 + PLUS + TC07 + MINUS + TC03 + MINUS + TC09;

            //const string BY_COUPLE_COUPLE_POSITIVE = TC09;
            //const string BY_COUPLE_COUPLE_NEGATIVE = TC07 + MINUS + TC09;

            //const string AGE_SEX_MALE_BELOW_15 = "TC02_MaleLT15";
            //const string AGE_SEX_MALE_ABOVE_15 = "TC02_MaleGT15";
            //const string AGE_SEX_FEMALE_BELOW_15 = "TC02_FemaleLT15";
            //const string AGE_SEX_FEMALE_ABOVE_15 = "TC02_FemaleGT15";
            #endregion

            var masterExcelTemplateCells = new List<ExcelTemplateCell>
            {
                #region HIV Testing and Counseling
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_MALE_BELOW_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) Age/Sex: <15 Male",
                    CellAddress = "AW22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD },
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_MALE_ABOVE_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) Age/Sex: 15+ Male",
                    CellAddress = "AX22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD },
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_FEMALE_BELOW_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) Age/Sex: <15 Female",
                    CellAddress = "AY22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD },
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_FEMALE_ABOVE_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) Age/Sex: 15+ Female",
                    CellAddress = "AZ22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_MALE_BELOW_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) Age/Sex: <15 Male",
                    CellAddress = "BA22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY },
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_MALE_ABOVE_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) Age/Sex: 15+ Male",
                    CellAddress = "BB22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_FEMALE_BELOW_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) Age/Sex: <15 Female",
                    CellAddress = "BC22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_FEMALE_ABOVE_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) Age/Sex: 15+ Female",
                    CellAddress = "BD22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_MALE_BELOW_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) Age/Sex: <15 Male",
                    CellAddress = "BE22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_MALE_ABOVE_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) Age/Sex: 15+ Male",
                    CellAddress = "BF22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_FEMALE_BELOW_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) Age/Sex: <15 Female",
                    CellAddress = "BG22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = AGE_SEX_FEMALE_ABOVE_15,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) Age/Sex: 15+ Female",
                    CellAddress = "BH22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_TEST_RESULTS_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) By Test Result: Positive",
                    CellAddress = "BI22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_TEST_RESULTS_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) By Test Result: Negative",
                    CellAddress = "BJ22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_TEST_RESULTS_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) By Test Result: Positive",
                    CellAddress = "BK22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_TEST_RESULTS_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) By Test Result: Negative",
                    CellAddress = "BL22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_TEST_RESULTS_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) By Test Result: Positive",
                    CellAddress = "BM22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_TEST_RESULTS_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) By Test Result: Negative",
                    CellAddress = "BN22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_INDIVIDUAL_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) By Couple: Number of individuals testing Positive",
                    CellAddress = "BO22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_INDIVIDUAL_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) By Couple: Number of individuals testing Negative",
                    CellAddress = "BP22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_COUPLE_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) By Couple: Number of couples tested Positive",
                    CellAddress = "BQ22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_COUPLE_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) By Couple: Number of couples tested Negative",
                    CellAddress = "BR22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_INDIVIDUAL_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) By Couple: Number of individuals testing Positive",
                    CellAddress = "BS22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_INDIVIDUAL_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) By Couple: Number of individuals testing Negative",
                    CellAddress = "BT22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_COUPLE_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) By Couple: Number of couples tested Positive",
                    CellAddress = "BU22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_COUPLE_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) By Couple: Number of couples tested Negative",
                    CellAddress = "BV22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_INDIVIDUAL_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) By Couple: Number of individuals testing Positive",
                    CellAddress = "BW22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_INDIVIDUAL_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) By Couple: Number of individuals testing Negative",
                    CellAddress = "BX22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_COUPLE_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) By Couple: Number of couples tested Positive",
                    CellAddress = "BY22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = BY_COUPLE_COUPLE_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) By Couple: Number of couples tested Negative",
                    CellAddress = "BZ22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.HTC_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                #endregion

                #region Prevention of Mother to Child Transmission (PMTCT)
                new ExcelTemplateCell
                {
                    IndicatorDataSource = PREGNANT_WOMEN_TESTED_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) Number of pregnant women tested HIV+",
                    CellAddress = "CU22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = PREGNANT_WOMEN_TESTED_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) Number of pregnant women tested HIV-",
                    CellAddress = "CV22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = KNOWN_POSITIVE_WOMEN_AT_ENTRY,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) Number of pregnant women known HIV+ at entry",
                    CellAddress = "CW22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = PREGNANT_WOMEN_TESTED_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) Number of pregnant women tested HIV+",
                    CellAddress = "CX22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = PREGNANT_WOMEN_TESTED_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) Number of pregnant women tested HIV-",
                    CellAddress = "CY22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = KNOWN_POSITIVE_WOMEN_AT_ENTRY,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) Number of pregnant women known HIV+ at entry",
                    CellAddress = "CZ22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },new ExcelTemplateCell
                {
                    IndicatorDataSource = PREGNANT_WOMEN_TESTED_POSITIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) Number of pregnant women tested HIV+",
                    CellAddress = "DA22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = PREGNANT_WOMEN_TESTED_NEGATIVE,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) Number of pregnant women tested HIV-",
                    CellAddress = "DB22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = KNOWN_POSITIVE_WOMEN_AT_ENTRY,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) Number of pregnant women known HIV+ at entry",
                    CellAddress = "DC22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = NEW_ANC_AND_LD_CLIENTS,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD)[Denom] Number of new ANC and L&D clients",
                    CellAddress = "DD22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = NEW_ANC_AND_LD_CLIENTS,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA)[Denom] Number of new ANC and L&D clients",
                    CellAddress = "DE22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = NEW_ANC_AND_LD_CLIENTS,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA)[Denom] Number of new ANC and L&D clients",
                    CellAddress = "DF22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = MATERNAL_AZT,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) By Regimen Type: Maternal AZT (prohylaxis component of WHO Option A during pregnancy and delivery)",
                    CellAddress = "DH22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = OPTION_B_NEW_ON_ART,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) [Sub-disagg to Life-long ART (including Option B+)] By Regimen Type: New on ART",
                    CellAddress = "DJ22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = OPTION_B_CURRENT_ON_ART,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD) [Sub-disagg to Life-long ART (including Option B+)] By Regimen Type: Currently on ART",
                    CellAddress = "DK22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },                                
                new ExcelTemplateCell
                {
                    IndicatorDataSource = MATERNAL_AZT,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) By Regimen Type: Maternal AZT (prohylaxis component of WHO Option A during pregnancy and delivery)",
                    CellAddress = "DM22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = OPTION_B_NEW_ON_ART,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) [Sub-disagg to Life-long ART (including Option B+)] By Regimen Type: New on ART",
                    CellAddress = "DO22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = OPTION_B_CURRENT_ON_ART,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) [Sub-disagg to Life-long ART (including Option B+)] By Regimen Type: Currently on ART",
                    CellAddress = "DP22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },                               
                new ExcelTemplateCell
                {
                    IndicatorDataSource = MATERNAL_AZT,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) By Regimen Type: Maternal AZT (prohylaxis component of WHO Option A during pregnancy and delivery)",
                    CellAddress = "DR22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = OPTION_B_NEW_ON_ART,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA) [Sub-disagg to Life-long ART (including Option B+)] By Regimen Type: New on ART",
                    CellAddress = "DT22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = OPTION_B_CURRENT_ON_ART,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA) [Sub-disagg to Life-long ART (including Option B+)] By Regimen Type: Currently on ART",
                    CellAddress = "DU22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },                                
                new ExcelTemplateCell
                {
                    IndicatorDataSource = POSITIVE_PREGNANT_WOMEN_IDENTIFIED,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD)[Denom]Number of HIV-positive pregnant women identified during the reporting period (including known HIV-positive women at entry into PMTCT)",
                    CellAddress = "DV22",                                    
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.DSD }
                    }
                },                                
                new ExcelTemplateCell
                {
                    IndicatorDataSource = POSITIVE_PREGNANT_WOMEN_IDENTIFIED,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA)[Denom]Number of HIV-positive pregnant women identified during the reporting period (including known HIV-positive women at entry into PMTCT)",
                    CellAddress = "DW22",                                    
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.TA_ONLY }
                    }
                },                                
                new ExcelTemplateCell
                {
                    IndicatorDataSource = POSITIVE_PREGNANT_WOMEN_IDENTIFIED,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(NA)[Denom]Number of HIV-positive pregnant women identified during the reporting period (including known HIV-positive women at entry into PMTCT)",
                    CellAddress = "DX22",                                    
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.NEITHER }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "MC12",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "Number tested: <2 months",
                    CellAddress = "DY22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "MC10,-,MC12",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader ="Number tested: 2-12 months",
                    CellAddress = "DZ22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "MC13",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "Number Tested HIV+: <2 months",
                    CellAddress = "EA22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "MC11,-,MC13",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "Number of Tested HIV+: 2-12 months",
                    CellAddress = "EB22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = POSITIVE_PREGNANT_WOMEN_IDENTIFIED,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "PMTCT_EID: [Denom] Number of HIV-positive pregnant women identified during the reporting period (including known HIV-positive women at entry into PMTCT)",
                    CellAddress = "EC22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE },
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "MC09",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "PMTCT_CTX: [Num] Number of infants born to HIV-infected women who were started o contrimoxazole (CTX) prophylaxis within two months of birth within the reporting period",
                    CellAddress = "ED22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = POSITIVE_PREGNANT_WOMEN_IDENTIFIED,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "PMTCT_CTX: [Denom] Number of HIV-positive pregnant women identified during the reporting period (including known HIV-positive at entry)",
                    CellAddress = "EE22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "HOSPITAL",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "Hospital",
                    CellAddress = "EG22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "DISPENSARY",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "Dispensary",
                    CellAddress = "EH22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "HEALTHCENTRE",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "Health Center",
                    CellAddress = "EI22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "PMTCTSITE",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "C4.3.N [Denom]: Health facility is a PMTCT site",
                    CellAddress = "EJ22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "ANCSERVICES",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "P1.3.D: Health facility providing ANC services that provide both HIV testing and ARVs for PMTCT on site [TRUE if providing; FALSE to change prior entry]",
                    CellAddress = "EF22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "ANC01",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "TZ ANC1 [Denom]: Number of 1st visit ANC clients",
                    CellAddress = "EL22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "HOSPITAL",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "By Facility Type: Hospital",
                    CellAddress = "EN22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "DISPENSARY",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "By Facility Type: Dispensary",
                    CellAddress = "EO22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "HEALTHCENTRE",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "By Facility Type: Health Center",
                    CellAddress = "EP22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = OtherSystemsFacilityDetail.RCH_FACILITY,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "TZ_RCH: Total number of RCH facilities in the region",
                    CellAddress = "EQ22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.PMTCT_SERVICE_TYPE }
                    }
                },
                #endregion

                #region Site Support (PEPFAR)
                new ExcelTemplateCell
                {
                    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.DSD_HTC,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD)HTC",
                    CellAddress = "ES22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.TA_HTC,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA)HTC",
                    CellAddress = "ET22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.DSD_TREATMENT,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD)Treatment",
                    CellAddress = "EU22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.TA_TREATMENT,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA)Treatment",
                    CellAddress = "EV22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.DSD_CARE_AND_SUPPORT,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD)Care and Support",
                    CellAddress = "EW22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.TA_CARE_AND_SUPPORT,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA)Care and Support",
                    CellAddress = "EX22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.DSD_FOOD_AND_NUTRITION,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD)Food and Nutrition",
                    CellAddress = "EY22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.TA_FOOD_AND_NUTRITION,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA)Food and Nutrition",
                    CellAddress = "EZ22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.DSD_PMTCT,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD)PMTCT",
                    CellAddress = "FA22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.TA_PMTCT,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA)PMTCT",
                    CellAddress = "FB22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.DSD_TB_HIV,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD)TB/HIV",
                    CellAddress = "FC22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.TA_TB_HIV,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA)TB/HIV",
                    CellAddress = "FD22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.DSD_VMMC,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD)VMMC",
                    CellAddress = "FE22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.TA_VMMC,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA)VMMC",
                    CellAddress = "FF22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.DSD_KEY_POP_PREVENTION,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD)Key Pop Prevention",
                    CellAddress = "FG22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.TA_KEY_POP_PREVENTION,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA)Key Pop Prevention",
                    CellAddress = "FH22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.DSD_PHDP_FAMILY_PLANNING,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD)PHDP / Family Planning & Integration",
                    CellAddress = "FI22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.TA_PHDP_FAMILY_PLANNING,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA)PHDP / Family Planning & Integration",
                    CellAddress = "FJ22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.DSD_LAB,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(DSD)Lab",
                    CellAddress = "FK22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                    }
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = DataModels.Models.OtherSystemsFacilityDetail.TA_LAB,
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "(TA)Lab",
                    CellAddress = "FL22",
                    ExcelTemplateCellExtras = new List<ExcelTemplateCellExtra>  
                    {
                        new ExcelTemplateCellExtra { Extras = OtherSystemsFacilityDetail.SKIP_FALSE_VALUE }
                    }
                }
                #endregion
            };

            var tangaTemplateCells = new List<ExcelTemplateCell>();
            foreach (var c in masterExcelTemplateCells)
            {
                var cell = (ExcelTemplateCell)c.Clone();
                tangaTemplateCells.Add(cell);
            }

            var maraTemplateCells = new List<ExcelTemplateCell>();
            foreach (var c in masterExcelTemplateCells)
            {
                var cell = (ExcelTemplateCell)c.Clone();
                maraTemplateCells.Add(cell);
            }

            var missingTemplateCells = new List<ExcelTemplateCell>();
            foreach (var c in masterExcelTemplateCells)
            {
                var cell = (ExcelTemplateCell)c.Clone();
                missingTemplateCells.Add(cell);
            }
            missingTemplateCells.AddRange(new List<ExcelTemplateCell>           
            {
                #region Data Row Headers
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "REGIONNAME",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "Region",
                    CellAddress = "C22"
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "DISTRICTNAME",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "District",
                    CellAddress = "D22"
                },
                new ExcelTemplateCell
                {
                    IndicatorDataSource = "FACILITYNAME",
                    ColumnHeaderIndex = 21,
                    RowHeaderIndex = 1,
                    ColumnHeader = "Facility",
                    CellAddress = "E22"
                }
                #endregion
            });

            this.context.ExcelTemplateReports.AddOrUpdate(r => r.Filename,
                #region Tanga 2014 APR
                new ExcelTemplateReport
                {
                    TemplateName = "SAPR / APR",
                    Description = "Semi-annual Progress Report / Annual Progress Report - Tanga [October 2014]",
                    Filename = "TZ_12045_FP_Catholic Relief Services_2014 APR_21.xlsx",
                    MainTemplate = true,
                    UsedInAPR = true,
                    UsedInSAPR = true,
                    CalculatingMethod = OtherSystemsFacilityDetail.CALCULATING_METHOD_COP14,

                    ExcelTemplateSheets = new List<ExcelTemplateSheet>
                    {
                        new ExcelTemplateSheet
                        {
                            TemplateSheetName = "Indicator Data Entry",
                            OutputSheetName = null,
                            OutputsheetNameTemplate = null,
                            HasRepetitiveColumns = false,
                            HasRepetitiveRows = false,
                            FirstRepetitiveColumnCellIndex = 3,
                            FirstRepetitiveRowCellIndex = 22,
                            LastRepetitiveColumnCellIndex = null,
                            LastRepetitiveRowCellIndex = null,
                            ExcelTemplateCells = tangaTemplateCells
                        }
                    }
                },
                #endregion
                #region Mara & Manyara 2014 APR
                new ExcelTemplateReport
                {
                    TemplateName = "SAPR / APR",
                    Description = "Semi-annual Progress Report / Annual Progress Report - Mara & Manyara [October 2014]",
                    Filename = "TZ_12045_FP_Catholic Relief Services_2014 APR_11.xlsx",
                    MainTemplate = true,
                    UsedInAPR = true,
                    UsedInSAPR = true,
                    CalculatingMethod = OtherSystemsFacilityDetail.CALCULATING_METHOD_COP14,

                    ExcelTemplateSheets = new List<ExcelTemplateSheet>
                    {
                        new ExcelTemplateSheet
                        {
                            TemplateSheetName = "Indicator Data Entry",
                            OutputSheetName = null,
                            OutputsheetNameTemplate = null,
                            HasRepetitiveColumns = false,
                            HasRepetitiveRows = false,
                            FirstRepetitiveColumnCellIndex = 3,
                            FirstRepetitiveRowCellIndex = 22,
                            LastRepetitiveColumnCellIndex = null,
                            LastRepetitiveRowCellIndex = null,
                            ExcelTemplateCells = maraTemplateCells
                        }
                    }
                },
                #endregion
                #region Missing 2014 APR
                new ExcelTemplateReport
                {
                    TemplateName = "SAPR / APR",
                    Description = "Semi-annual Progress Report / Annual Progress Report - Missing [October 2014]",
                    Filename = "Missing_TZ_12045_FP_Catholic Relief Services_2014 APR.xlsx",
                    MainTemplate = false,
                    UsedInAPR = true,
                    UsedInSAPR = true,
                    CalculatingMethod = OtherSystemsFacilityDetail.CALCULATING_METHOD_COP14,

                    ExcelTemplateSheets = new List<ExcelTemplateSheet>
                    {
                        new ExcelTemplateSheet
                        {
                            TemplateSheetName = "Indicator Data Entry",
                            OutputSheetName = null,
                            OutputsheetNameTemplate = null,
                            HasRepetitiveColumns = false,
                            HasRepetitiveRows = false,
                            FirstRepetitiveColumnCellIndex = 3,
                            FirstRepetitiveRowCellIndex = 22,
                            LastRepetitiveColumnCellIndex = null,
                            LastRepetitiveRowCellIndex = null,
                            ExcelTemplateCells = missingTemplateCells
                        }
                    }
                }
                #endregion
            );
        }

        private void SeedTestingAndCounseling()
        {
            this.context.TestingAndCounseling.AddOrUpdate(t => t.Name,
                new TestingAndCounseling
                {
                    Name = "VCT",
                    Description = "Voluntary Counseling and Testing"
                },
                new TestingAndCounseling
                {
                    Name = "PITC",
                    Description = "Provider Initiative Testing and Counseling"
                },
                new TestingAndCounseling
                {
                    Name = "HBTC",
                    Description = "Home Based Testing and Counseling"
                }
            );
        }

        private void SeedAccessLevels()
        {
            this.context.AccessLevels.AddOrUpdate(a => a.AccessName,
                new AccessLevel { AccessName = AccessLevel.ADMINISTRATOR_LEVEL },
                new AccessLevel { AccessName = AccessLevel.NATION_LEVEL },
                new AccessLevel { AccessName = AccessLevel.REGION_LEVEL },
                new AccessLevel { AccessName = AccessLevel.DISTRICT_LEVEL },
                new AccessLevel { AccessName = AccessLevel.FACILITY_LEVEL }
            );
        }

        private void SeedActivities()
        {
            this.context.Activities.AddOrUpdate(a => a.Name,
                new Activity { Name = Activity.TECHNICAL_SUPPORT },
                new Activity { Name = Activity.SAPR_COMPILATION },
                new Activity { Name = Activity.APR_COMPILATION },
                new Activity { Name = Activity.MEETING_WORKSHOP },
                new Activity { Name = Activity.TRAINING }
            );
        }
        #endregion
    }
}
